#ifndef CORE_POINT_H
#define CORE_POINT_H

namespace core {

	class Point
	{
	public:
		int X;
		int Y;

		Point( int x, int y );
		Point( const Point& orig );

		Point operator += ( const Point& pos );
		Point operator -= ( const Point& pos );
	};

	inline Point operator- ( const Point& v ) {
		return Point( -v.X, -v.Y );
	}

	inline Point operator+ ( const Point& a, const Point& b ) {
		return Point( a.X + b.X, a.Y + b.Y );
	}

	inline Point operator- ( const Point& a, const Point& b ) {
		return Point( a.X - b.X, a.Y - b.Y );
	}

	inline bool operator == ( const Point& a, const Point& b ) {
		return a.X == b.X && a.Y == b.Y;
	}

	inline bool operator != ( const Point& a, const Point& b ) {
		return a.X != b.X || a.Y != b.Y;
	}
}
#endif
